#!/bin/bash

# ssh_ntp_sync.sh - 远程批量时间同步脚本
# 该脚本用于批量同步远程服务器的时间，以保持日志、任务调度和数据库记录的一致性。
#
# 功能：
# - 自动检测并安装 sshpass（如未安装）
# - 读取服务器列表（servers.txt），解析用户、IP、密码信息
# - 使用 SSH 连接远程服务器，并执行 NTP 时间同步
# - 记录同步成功与失败的服务器信息

# 服务器列表存储文件
SERVER_LIST="servers.txt"
NTP_SERVER="ntp.aliyun.com"  # NTP 服务器，可根据需要修改

# 检查 sshpass 是否安装
if ! command -v sshpass &> /dev/null; then
    echo "sshpass 未安装，正在尝试安装..."
    sudo apt-get update && sudo apt-get install -y sshpass
fi

# 读取服务器列表并执行时间同步
while IFS=',' read -r REMOTE_USER REMOTE_HOST REMOTE_PASS; do
    echo "正在同步时间到服务器: ${REMOTE_HOST}"
    sshpass -p "${REMOTE_PASS}" ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} "sudo ntpdate ${NTP_SERVER} && sudo hwclock -w"
    echo "时间同步完成: ${REMOTE_HOST}"
done < ${SERVER_LIST}

echo "所有服务器时间同步任务完成"


